package cn.iocoder.yudao.module.system.controller.admin.a_pictures.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Size;

/**
 * 用户 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Schema(description = "稿件管理 - 图片 Request VO")
@Data
public class PicturesBaseVO {

    private Long id; // 图片id

    @Schema(description = "图片名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "图片名称")
    @Size(max = 50, message = "图片名称长度不能超过50个字符")
    private String fileName;

    @Schema(description = "图片作者", example = "图片作者")
    @Size(max = 50, message = "图片作者长度不能超过50个字符")
    private String author; // 作者

    @Schema(description = "尺寸", example = "尺寸")
    @Size(max = 50, message = "尺寸长度不能超过50个字符")
    private String size; // 尺寸

    @Schema(description = "格式", example = "格式")
    @Size(max = 50, message = "格式长度不能超过50个字符")
    private String format; // 格式

    @Schema(description = "描述", example = "描述")
    @Size(max = 500, message = "描述长度不能超过500个字符")
    private String content; // 图片描述

    @Schema(description = "关键词", example = "关键词")
    @Size(max = 500, message = "关键词长度不能超过500个字符")
    private String keyword; // 关键词

    @Schema(description = "拍摄时间", example = "拍摄时间")
    private String picCreateTime; // 拍摄时间

    @Schema(description = "文件类型", example = "文件类型")
    private String suffix; // 文件类型

    @Schema(description = "分辨率", example = "分辨率")
    private String picResolution; // 分辨率

    @Schema(description = "来源", example = "来源")
    private String source; // 来源

    @Schema(description = "类别")
    private String category; // 类别

    @Schema(description = "图片地址")
    private String url; // 图片地址

    @Schema(description = "文件相对路径")
    private String relativePath; // 文件相对路径

    @Schema(description = "文件绝对路径")
    private String absolutePath; // 文件绝对路径

    @Schema(description = "文件大小")
    private Long fileSize; // 文件大小

    @Schema(description = "版本号")
    private Integer version; // 版本号

    @Schema(description = "高度")
    private Integer height; // 高度

    @Schema(description = "宽度")
    private Integer width; // 宽度

    @Schema(description = "水印状态")
    private Integer watermark; // 水印状态

    @Schema(description = "创建者ID")
    private String createUserId; // 创建者ID

    @Schema(description = "审核状态")
    private Integer reviewStatus; // 审核状态

    @Schema(description = "共享状态")
    private String isShare; // 共享状态

    @Schema(description = "推送状态")
    private String isPush; // 推送状态

    @Schema(description = "图像特征提取")
    private String feature; // 图像特征提取
}
